package portal.ejb;

import java.util.ArrayList;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.apache.log4j.Logger;

import portal.converter.convVo;
import portal.entities.Compra;
import portal.entities.Usuario;
import portal.enums.EstadoCompraEnum;
import portal.vo.CompraVO;

/**
 * Session Bean implementation class AdministradorUsuariosBean
 */
@Stateless
public class AdministradorComprasBean implements AdministradorCompras {

	@PersistenceContext(unitName = "PortalDeComprasDB")
    EntityManager em;
	
    
    /**
     * Default constructor. 
     */
    public AdministradorComprasBean() {
        // TODO Auto-generated constructor stub
    }
 
	
    @Override
	public CompraVO getCompraById(Long idCompra) {
    	Compra compra = em.find(Compra.class, idCompra);
		return compra.getVO();
	}
 

	@Override
	public boolean actualizarEstadoCompra(Long idCompra) {
		
		Compra compra = em.find(Compra.class, idCompra);
		if(compra != null){
			compra.setEstadoCompra(EstadoCompraEnum.ENTREGADA.toString());
			return true; // se pudo actualizar la compra
		} else {
			return false;
		}
		
	}


	@Override
	public List<CompraVO> getListaComprasByUsuario(Usuario usuario) {
		List<Compra> compras = new ArrayList<Compra>();
		
		Query query = em.createQuery("from Compra c where c.usuarioCompra.nombre = :usuario and c.usuarioCompra.password = :password");
		query.setParameter("usuario", usuario.getNombre());
		query.setParameter("password", usuario.getPassword());
		compras = query.getResultList();
		return convVo.getListaVoFromEntity(compras);
	}

    
}
